1. Field of the Invention
The present invention relates to a method for handling timers in a wireless communication system, and more specifically, to a method for handling timers after an RLC reset or re-establishment in a wireless communications system.
2. Description of the Prior Art
Technological advances have moved hand in hand with more demanding consumer expectations. Devices that but ten years ago were considered cutting edge are today obsolete. These consumer demands in the marketplace spur companies towards innovation. The technological advances that result only serve to further raise consumer expectations. Presently, portable wireless devices, such as cellular telephones, personal digital assistants (PDAs), notebook computers, etc., are a high-growth market. However, the communications protocols used by these wireless devices are quite old. Consumers are demanding faster wireless access with greater throughput and flexibility. This has placed pressure upon industry to develop increasingly sophisticated communications standards. The 3rd Generation Partnership Project (3GPP) is an example of such a new communications protocol.
Please refer to FIG. 1. FIG. 1 is a simplified block diagram of the prior art communications model. In a typical wireless environment, a first station 10 is in wireless communications with one or more second stations 20. The first station 10 is comprised of upper layers 12, a radio link control (RLC) entity 14, and lower layers 16 which are below the RLC 14. In the following disclosure, all of the RLC entities are assumed to be RLC acknowledged mode (RLC AM) entities. The upper layers 12 can deliver messages to the RLC 14 through service data units (SDUs) 13. The SDUs 13 may be of any size, and hold data that the upper layers 12 wish delivered to the second station 20. The RLC 14 composes the SDUs 13 into one or more protocol data units (PDUs) 15. Each PDU 15 of the RLC 14 is of a fixed size, and is delivered to the lower layers 16. The lower layers 16 include the physical layer, which is in charge of transmitting data to the second station 20.
The second station 20 shown has exactly the same basic structure as the first station 10. The second station 20 also includes upper layers 22, an RLC 24, and lower layers 26. Just as with the first station 10, the second station 20 uses the upper layers 22 to transmit SDUs 23 to the RLC 24, and uses the RLC 24 to transmit PDUs 25 to the lower layers 26. The data transmitted by the first station 10 is received by lower layers 26 of the second station 20 and reconstructed into one or more PDUs 25, which are passed up to the RLC 24. The RLC 24 receives the PDUs 25 and from them assembles one or more SDUs 23, which are then passed up to the upper layers 22. The upper layers 22, in turn, convert the SDUs 23 back into messages, which should be identical to the original messages that were generated by the first station 10. In communication systems, the terms SDU and PDU have broad meanings. For purposes of the following disclosure, the term “SDU” is used to indicate SDUs passed from the upper layers to the RLC, and the term “PDU” should be understood as PDUs passed from the RLC to lower layers. In addition, for simplicity the following disclosure will be written from, the perspective of the first station 10, unless otherwise noted.
Please refer to FIGS. 2A and 2B. FIGS. 2A and 2B are message sequence charts illustrating a reset procedure for peer RLC AM entities according to the prior art. In all the message sequence charts used in the following disclosure, the progression of time is shown from top to bottom. In FIG. 2A, the first station 10 is shown initiating the reset procedure by sending a RESET PDU to the second station 20. From the perspective of the first station 10, the reset procedure begins with transmission of the RESET PDU, and is not finished until a RESET ACK PDU is received from the second station 20. From the perspective of the second station 20, the reset procedure begins upon reception of the RESET PDU, and ends after transmission of the RESET ACK PDU to the first station 10. In FIG. 2B, the opposite scenario is shown. That is, the second station 20 initiates the reset procedure by sending a RESET PDU to the first station 10, and the first station 10 acknowledges this RESET PDU by sending a RESET ACK PDU to the second station 20. Therefore, either one of the peer RLC entities 14 and 24 contained in the first and second stations 10 and 20 can initiate a reset procedure.
Resetting and re-establishing stopping the RLC 14 is defined by the 3rd Generation Partnership Project (3GPP) specification 3GPP TS 25.322 V3.11.0 “RLC Protocol Specification”, which is included herein by reference. According to the current RLC reset procedure for acknowledged mode, all timers except for a Timer_RST timer are stopped for each peer RLC AM entity upon completion of the reset procedure for that entity. Therefore, Timer_Poll, Timer_Poll_Prohibit, Timer_EPC, Timer_Discard, Timer_Poll_Periodic, Timer_Status_Prohibit, Timer_Status_Periodic, and Timer_MRW are all stopped during a reset procedure. For an example, please refer back to FIG. 2A. All of the timers except for the Timer_RST timer would be stopped by the RLC entity 24 of the second station 20 after the RESET ACK PDU is sent to the first station 10. In addition, all of the timers would be stopped by the RLC entity 14 of the first station 10 after the RESET ACK PDU is received from the second station 20.
During an RLC re-establishment function for acknowledged mode and unacknowledged mode, upper layers may request re-establishment of an RLC entity.
However, the 3GPP TS 25.322 V3.11.0 specification does not specify how each of the previously mentioned timers should be handled during re-establishment. Due to this lack of guidelines, potential problems could develop due to the improper use of the timers.
Please refer to FIG. 3. FIG. 3 is a phase diagram illustrating a transmission window of an RLC AM entity according to the prior art. During normal operation, the RLC AM entity 14 (transmitter) transmits acknowledged mode data (AMD) PDUs to the RLC AM entity 24 (receiver), and each PDU is marked with a sequence number (SN). The SNs have a fixed bit length of n bits. In the preferred embodiment, the bit length n is 12. Hence, the SNs have a range of values from zero to 4095 (2121). The phase diagram for SNs can thus be represented by a circle. For the following example, point 30 is the sequentially lowest transmitter PDU SN value waiting for acknowledgment from the receiver in the form of a STATUS PDU, which contains information on which PDUs have been acknowledged. In other words, point 30 marks the beginning of the transmitting window. In this example, assume a window size=X. Point 32 marks the highest PDU SN value of an AMD PDU that has been sent so far. Therefore, in order to prevent the transmitting window from filling up, the difference of PDU SN values at point 32 and point 30 has to be less than X. Otherwise, the transmitting window fills up, and deadlock occurs. Deadlock can occur if AMD PDUs sent from the transmitter to the receiver are not properly acknowledged by the receiver. This would cause point 30 to remain stationary, and the difference between point 32 and point 30 would eventually equal the maximum window size of X.
Please refer to FIG. 4. FIG. 4 is a message sequence chart illustrating problems occurring with the Timer_Poll_Periodic timer during the prior art reset and re-establishment procedures. The Timer_Poll_Periodic timer is used by the RLC AM entity 14 to poll its peer RLC AM entity 24 to send a STATUS PDU. When the Timer_Poll_Periodic timer of the RLC AM entity 14 expires, a poll request is send to the RLC AM entity 24 asking for a STATUS PDU to be sent back to the RLC AM entity 14.
First of all, the Timer_Poll_Periodic timer is started for the RLC AM entity 14 of the first station 10 when the RLC AM entity 14 is created. Next, upon reception of a RESET PDU or a RESET ACK PDU, the RLC AM entity 14 is reset, which causes the Timer_Poll_Periodic timer to be stopped. Unfortunately, the Timer_Poll_Periodic timer is never restarted after the reset procedure. Therefore, the Timer_Poll_Periodic timer does not ever get started again, and cannot trigger a poll to the peer RLC AM entity 24 upon expiration of the timer. This means that AMD PDUs with lower SN values indicated by point 30 in FIG. 3 will never be acknowledged. Since point 30 never moves, eventually the difference between point 32 and point 30 will equal the transmission window size of X. Thus, because the timer remains stopped, deadlock occurs, and the RLC AM entity 14 cannot transmit additional PDUs to the peer RLC AM entity 24.
Please refer to FIG. 5. FIG. 5 is a message sequence chart illustrating problems occurring with the Timer_Status_Periodic timer during the prior art reset and re-establishment procedures. The following illustrates the case where the RLC AM entity 14 is configured to use the Timer_Poll_Periodic timer, and the RLC AM entity 24 is configured to use the Timer_Status_Periodic timer. The Timer_Status_Periodic timer is used by the RLC AM entity 24 to send STATUS PDUs to its peer RLC AM entity 14. When the Timer_Status_Periodic timer of the RLC AM entity 24 expires, a STATUS PDU is generated and sent to the RLC AM entity 14. This STATUS PDU informs the RLC AM entity 14 which AMD PDUs have been acknowledged.
First of all, the Timer_Status_Periodic timer is started for the RLC AM entity 24 of the second station 20 when the RLC AM entity 24 is created. Also, the status function “Detection of missing PDU(s)” may be configured for the RLC AM entity 24. If this function is configured, it is triggered only when missing PDU(s) are detected. Next, upon reception of a RESET PDU or a RESET ACK PDU, the RLC AM entity 24 is reset, which causes the Timer_Status_Periodic timer to be stopped. Unfortunately, the Timer_Status_Periodic timer is never restarted after the reset procedure. Therefore, the Timer_Status_Periodic timer does not ever get started again, and cannot trigger a poll to the peer RLC AM entity 14 upon expiration of the timer. This means that AMD PDUs with lower SN values indicated by point 30 in FIG. 3 will never be acknowledged. Since point 30 never moves, eventually the difference between point 32 and point 30 will equal the transmission window size of X. Thus, because the timer remains stopped, deadlock occurs, and the RLC AM entity 24 cannot transmit additional PDUs to the peer RLC AM entity 14.
In summary, even though the RLC AM entity 14 was configured to use the Timer_Poll_Periodic timer and the RLC AM entity 24 was configured to use the Timer_Status_Periodic timer, both of these timers are stopped during a reset procedure. Furthermore, neither of these timers are ever restarted, not even during re-establishment. Thus, deadlock occurs due to the way these two timers are handled.
Please refer to FIG. 6. FIG. 6 is a message sequence chart illustrating problems occurring with the Timer_Discard timer during the prior art reset and re-establishment procedures. The Timer_Discard timer is used by the peer RLC entities 14 and 24 (although only RLC AM entity 14 will be used as an example) to determine when SDUs 13 received from upper layers should be discarded. For each SDU 13 the RLC AM entity 14 receives from upper layers, a corresponding Timer_Discard timer is started for that SDU. When the Timer_Discard timer of the RLC AM entity 14 expires, the corresponding SDU 13 is discarded if the SDU 13 still remains in the RLC AM entity 14.
First of all, the Timer_Discard timer is started for each SDU 13 when the RLC AM entity 14 receives the SDUs 13 from upper layers. Next, upon reception of a RESET PDU or a RESET ACK PDU, the RLC AM entity 14 is reset, which causes the Timer_Discard timer for each SDU 13 to be stopped. Unfortunately, none of the Timer_Discard timers for the corresponding SDUs 13 are ever restarted after the reset procedure. Therefore, the Timer_Discard timers do not ever get started again, and the corresponding SDUs 13 are never appropriately dealt with. Since these SDUs 13 being held in the RLC AM entity 14 cannot be discarded, the RLC AM entity 14 is not able to properly account for these SDUs 13, and quality of service (QoS) cannot be maintained.
Therefore, since the current 3GPP specification does not specify how each of the previously mentioned timers should be handled during re-establishment, deadlock can occur and quality of service may be reduced substantially.